package com.hwh.bootdemoweb.Netty第六章;

import io.netty.channel.DefaultEventLoop;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.util.NettyRuntime;

import java.util.concurrent.TimeUnit;

/**
 * @author wenhao hu
 * @title: TestEventLoopGroup
 * @projectName bootdemoweb
 * @description: TODO
 * @date 2021/12/1711:39
 */
public class TestEventLoop {
    public static void main(String[] args) {
        //1.创建事件循环组
        // io事件、普通任务、定时任务
        EventLoopGroup group = new NioEventLoopGroup(2);
        //普通任务，定时任务
//        EventLoopGroup grout = new DefaultEventLoop();

        //2.用group.next()获取下一个事件循环对象

        //3.执行普通任务
        group.next().submit(()->{
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("ok");
        });
        System.out.println("main");
        //4.执行定时任务 参数1：runnable 参数2：初始延时时间 参数3：时间间隔 参数4：时间单位
        System.out.println("-------------执行定时任务-------------");
        group.next().scheduleAtFixedRate(()->{
            System.out.println(Thread.currentThread().getName()+":ok");
        },0,1, TimeUnit.SECONDS);

        group.shutdownGracefully();
    }
}
